import { createRouter, createWebHistory } from 'vue-router'

// 使用 glob 导入所有路由模块
const modules = import.meta.glob('./modules/**/*.ts', {
  eager: true,
  import: 'default'
})

// 定义白名单文件
const whiteList = ['./modules/nav.ts']

function getModuleRoutes(isWhiteList = false) {
  const routes = []
  for (const path in modules) {
    const isInWhiteList = whiteList.includes(path)
    // 根据 isWhiteList 参数决定是获取白名单内还是白名单外的路由
    if (isWhiteList ? isInWhiteList : !isInWhiteList) {
      const module = modules[path]
      if (Array.isArray(module)) {
        routes.push(...module)
      } else {
        routes.push(module)
      }
    }
  }
  return routes
}

function getRoutes() {
  // 获取白名单路由和其他路由
  const whiteListRoutes = getModuleRoutes(true)
  const otherRoutes = getModuleRoutes(false)
  return [...whiteListRoutes, ...otherRoutes]
}

const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  routes: getRoutes()
})

export default router
